/* 
1 输入框绑定 值改变事件 input事件
  1 获取到输入框的值
  2 合法性判断 
  3 检验通过 把输入框的值 发送到后台
  4 返回的数据打印到页面上
2 防抖 （防止抖动） 定时器  节流 
  0 防抖 一般 输入框中 防止重复输入 重复发送请求
  1 节流 一般是用在页面下拉和上拉 
  1 定义全局的定时器id
 */
import {
  request
} from '../../request/index'
import regeneratorRuntime from '../../lib/runtime/runtime';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 存储搜索的商品数据
    goods: [],
    inputValue: '',
    // 控制按钮的显示隐藏
    isHidden: false
  },
  // 搜索商品参数
  searchParans: {
    query: '',
  },
  // 定时器，防抖
  timeId: -1,
  // 监听输入框input
  handleInput(e) {
    // 获取输入的value值
    const {
      value
    } = e.detail
    // 验证合法性
    if (!value.trim()) {
      this.setData({
        goods: [],
        isHidden: false
      })
      return
    }
    clearTimeout(this.timeId)
    this.setData({
      isHidden: true
    })
    this.timeId = setTimeout(() => {
      // 发送请求
      this.qsearch(value)
    }, 1000)

  },
  // 点击按钮取消
  handleCancel() {
    this.setData({
      isHidden: false,
      goods: [],
      inputValue: ''
    })
  },
  // 搜索商品
  async qsearch(query) {
    const {
      data: res
    } = await request({
      url: '/goods/qsearch',
      data: {
        query
      }

    })
    this.setData({
      goods: res.message
    })
    console.log(res);
  }
})